package com.atguigu.gulimall.search.vo;


import com.atguigu.gulimall.search.es.SkuEsModel;
import lombok.Data;

import java.util.List;

/**
 * @Description:
 * @Created: with IntelliJ IDEA.
 * @author: 夏沫止水
 * @createTime: 2020-06-13 14:41
 **/

@Data
public class SearchResult {
    /**
     * 查询到的所有商品信息
     */
    private List<SkuEsModel> products;
    /**
     * 当前页码
     */
    private Integer pageNum;
    /**
     * 总记录数
     */
    private Long total;

    /**
     * 总页码
     */
    private Integer totalPages;
    private List<Integer> pageNavs;
    //后面的几个list集合字段，就是对满足查询条件的sku的一次统计，一次聚合
    //把sku中涉及到的字段，属性，总体拿出来再封装到和List<SkuEsModel> product并列的SeachResult并列的字段中
    /**
     *
     * 当前查询，会查出很多sku，这些sku涉及到的品牌（id,name,image)合集都放入
     * 这个List中，用于前端显示
     */
    private List<BrandVo> brands;
    /**
     *
     * 当次查询出所有sku涉及到的属性集合都放在该list中
     * 一个属性需要（id,name,以及它的值，而且它的值可以是多个，为啥是多个？因为它是把拥有相同属性的sku的值放在了一起
     * 也就是把所有属性都从sku里面拿出来，一个一个的封装成AttrVo结构，一个属性的不同值（因为来自不同sku)又继续封装到
     * AttrVo结构List<String> attrValue中
     */
    private List<AttrVo> attrs;
    /**
     * 当前查询到的结果，所有涉及到的所有分类
     * 都封装到这个集合中
     */
    private List<CatalogVo> catalogs;
    //===========================以上是返回给页面的所有信息============================//

    /* 面包屑导航数据 */
    private List<NavVo> navs;
}
